home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / os2 / b_dir131.zip / CHANGES.TXT < prev    next >
Text File  |  1996-04-07  |  12KB  |  188 lines

  1. B.EXE  Changes / Bug Fixes
  2.  
  3. Version 1.1      all done around November 26, 1994.
  4.      Fixed a bug that incorrectly reported a directory with even megabytes of 
  5. files as multiples of .1 Meg of files.  This had to do with the fact that, in 
  6. computing the number of Megs of files, I do not actually do any floating 
  7. point dividing, but instead do integer math, and the error came from trying 
  8. to round the numbers.  I dropped the number rounding.
  9.      I changed the program so that it will read its "name" from the command 
  10. line, so that if you change its name, such as from B.EXE to PROGRAM.EXE, it 
  11. will "know" itself as PROGRAM.EXE.  The help text ( /? for the switch ) will 
  12. reflect this, as will the system variable that must be set.  Thus, if you 
  13. don't like the name B.EXE, you can change it for all practical purposes.  
  14. However, the .EXE ending needs to be kept.
  15.      I fixed the counting for when and where to pause when the number of 
  16. files and directories would be off the screen so as to take the bar along the 
  17. top that OS/2 creates in command line sessions by default into consideration.
  18.      I added a way to stop the directory scroll at a certain point, so as to 
  19. get back to the command line.  All one has to do is hit the 'Esc' key now, 
  20. and you immediately get the command prompt, and all of the entries that were 
  21. on the screen stay on the screen.
  22.      If one used the system variable, there was no way to clear switches that 
  23. were already set, from the command line.  Now all the switches, except for 
  24. the ones which control how many columns appear on the screen ( /w /n /d /l ) 
  25. and the one that changes the highlighting extensions ( /c ), will now toggle, 
  26. so that if you use them twice, they are negated.  The reason I don't do this 
  27. for the ones that control the columns is that the /n switch effectively 
  28. clears both /w and /d already.  I don't know if anyone will actually use this 
  29. toggle 'feature', but it's there. 
  30.  
  31. Version 1.11      all done around December 5, 1994.
  32.      When rewriting internal stuff for 1.1 fix, I screwed up the /D switch so 
  33. that it does not show the size of files.  I fixed this so that you can see 
  34. the sizes now.  This was corrupted in both versions, DOS and OS/2.
  35.  
  36. Version 1.2       all done around March 18, 1995
  37.      I am not including IBM Works versions of the text since I don't have it 
  38. installed since I have Word Perfect 6.1 now to use.
  39.      I brilliantly realized that having two separate source files for the two 
  40. versions was a little stupid, since I can use the #ifdef directives in C to 
  41. add in specific code.  Now I don't have to worry that I forgot to change in 
  42. one version something I changed in the other.  This was a big problem before.
  43.      I cut out a lot of dumb code, by thinking up clean and compact C++ code.  
  44. I am now utilizing unions to the maximum.
  45.      Fixed a lot of bugs.  Fixed /S not working in OS/2.  Fixed a problem 
  46. with /C being the last parameter in the environment variable.  If /C was the 
  47. last thing in your environment variable, the next thing on the command line 
  48. would be looked at as if it was an extension for /C; this was fixed.  I fixed 
  49. a few other /C problems.
  50.      Due to user demand, I have added /A to allow one to change the default 
  51. colors of my program.  Why did I put it as a switch?  Accessing a file is WAY 
  52. too slow, and file access adds a lot of code.  Another environment variable 
  53. would be too weird.  A switch is fast, and it allows one to use it in 
  54. aliases.  Obviously, I wouldn't expect anyone to type in /A with all 9 colors 
  55. every time.
  56.      Due to user demand, I added in sorting (with reverse sort also).  You 
  57. can sort by name (default), extension, time, and size.  You can choose to not 
  58. sort.  The directories stay grouped together out of the way; files and 
  59. directories are separate classes in my program, and I didn't feel like 
  60. messing with ungrouping them.
  61.      I changed the /O switch from showing only files, to the sort switch, to 
  62. be like DOS (sort of), and the old /O became /K instead.  (From "files  
  63. O'nly" to " K'ill subdirectories", I guess.)
  64.      Due to user demand, I added more extensions to the /C switch.  I added 
  65. one more color (dark green by default) for the sixth extension, then 
  66. extensions 7 - 12 take on the same colors as extensions 1 - 6.  Hopefully 
  67. twelve extensions are enough.
  68.      I allowed /L for the DOS version to work. /L will now show explicitly 
  69. what attributes the file has, especially since files consisting only of 
  70. numbers can not be capitalized for read-only files.  I also added, for 
  71. laughs, the time up to a half-second on the files and directories; why anyone 
  72. would need this is beyond me.
  73.      Due to user demand, using .ZIP for instance as an argument would be 
  74. transformed to *.ZIP, as in MSDOS.  Also, the DOS version would transform 
  75. ABC* as ABC*.* (the OS/2 version doesn't need it).
  76.  
  77. Version 1.3       all done around July, 1995
  78.      Moved the  -' sign from the back to in front of the second letter in /O, 
  79. i.e. to reverse sort such as in size, you must now use  /O-S', instead of  
  80. /OS-'.
  81.      Changed /S to /JD, and /K to /JF ( just directories' and  just files'), 
  82. as they make more sense, and I wanted /S to make it mean the same thing as 
  83. DIR's /S switch.
  84.      Using /OS will automatically bump you up to /N from /W so that you can 
  85. see the sizes automatically.  Using /OD will automatically bump you up to /D 
  86. from /N or /W.
  87.      I made it so that the switches were now absolute, instead of toggling.  
  88. If you use the same switch twice, such as "/F /F", it will stay as /F, 
  89. instead of just disappearing.  Instead, I now added the ability to just add a  
  90. '-' in front to disable the switch, such as /-F to disable /F.  This makes 
  91. more sense, and is consistent with DIR.
  92.      I made the switch processing  engine' much less forgiving, and if you 
  93. don't use the right switches as shown in the help, it will generate an error.
  94.      Killed the lines that would be left behind after pauses, as they were 
  95. annoying.
  96.      I fixed the bug in /L, where I show  half-seconds'.  I misread the 
  97. Borland C++ help files, as what I thought were half-seconds were (seconds)/2, 
  98. as in seconds/2 = x, or seconds = 2x.  What I thought were half-seconds were 
  99. two-second intervals.  Oh well.
  100.      You do not to put spaces between switches now, as in UNIX.  This applies 
  101. to all switches except for /C where the spaces are still needed.
  102.      Added the volume label to the /F switch.  It is a little flaky, as it 
  103. has problems with keeping spaces in the right places if they are near 
  104. positions 8 or 9 in the label.
  105.      Specifying B as the file mask will automatically be transformed to B.*, 
  106. as with the MS-DOS DIR.
  107.      You no longer have to specify every color with /A anymore.  You can skip 
  108. colors you want to leave alone, such as /A,,5,3 if you wanted.  You now can 
  109. specify up to 12 highlighting colors now, if one wanted, as the colors no 
  110. longer cycle any more after 6.  I used the remaining colors for the last 6 
  111. default extension colors.  Also, you can specify a background color if you 
  112. want by using  :' after the foreground color, such as by /A,11:5,,:3,,14.  
  113. The background color can only be from 0 to 7.   You can just specify the 
  114. background without specifying the foreground.  You can't specify the 
  115. background of the first parameter for /A (information), as it would have been 
  116. annoying to make it work.
  117.      I added /T for teletype mode, as some wanted to redirect the output to a 
  118. file or printer.  What this does is effectively kill the colors, by using 
  119. printf instead of cprintf.  I did this easily with a function pointer.  The 
  120. output does not pause, however, and is not broken by the breaks subsequently.  
  121. Just use "B > PRN" or "B > filename" to print or capture to file.
  122.      I added 4 switches in the process of adding the /B switch. /I is the one 
  123. responsible for showing the number of files and directories and the directory 
  124. size. /P is the one responsible for showing the current directory and mask. 
  125. /G is for grouping the directories away from the files.  These 3 are all on 
  126. by default, and can be turned off. /H is responsible for how tall a column 
  127. must be before a new one is started.  If /H is set to 4, if there are four 
  128. directory entries, there is only one column.  If there are 5 entries, a 
  129. second column is started.  These switches might all seem dumb, but they were 
  130. essentially free as they took very little code.
  131.      I added a switch to take out all the extraneous information in one 
  132. swoop, /B, similar to DIR's.  It turns off /Z, /F, /E, /I, /P, and sets /H to 
  133. 1.  This is useful to fit only the essentials on the screen.
  134.      I added to the help screen (/?) what switches are already in use, except 
  135. for /A and /C which would take up too much room.  This is just so people can 
  136. tell what actually is turned on.
  137.      I added a new /S switch which does the same as DIR's.  It recursively 
  138. searches through the subdirectories.  THIS SWITCH WAS A BIG PAIN IN THE BUTT 
  139. TO WRITE.  It has a few quirks that I am going to iron out, but it works 
  140. okay.  
  141.      I added 4 more extensions, making 16 extensions available to set.  Go 
  142. bananas with extensions!
  143.      In this version, I cut out a lot of extra code that wasn't needed.  I 
  144. combined my two classes into one, as it actually saved on code.
  145.  
  146. Version 1.31       all done around October, 1995 
  147.      I screwed up the DOS version's environment variable buffer thing
  148. inside the program.  If it is too long, the program freaks out.  This is
  149. from writing over unallocated memory areas!  Oops!  I kept forgetting to 
  150. release this.
  151.      I did not change the OS/2 version.
  152.  
  153. Future Changes:
  154.      All of this is up to time constraints.  I am working on my PhD in
  155. physics, so I have little time for programming!
  156.      I just bought Watcom C/C++ 10.0, and I plan to rewrite B with this 
  157. compiler.  I plan to rewrite the OS/2 version with true API calls, adding 
  158. EA's to it with the /L switch.  I have been stating this since 1.0, but I now 
  159. have the tools to do it.  I have to figure out the API calls for colored
  160. text in a command line session.
  161.      If I get REAL bored, I might write a seperate program which will patch 
  162. default settings right into B, by putting labels in my program for it to look 
  163. for.  This way, you won't need monster switch statements for your default 
  164. settings, and this way is actually faster.  No more parsing down the switches 
  165. and interpreting them.  I hate setting all the damn switches, too!  I don't 
  166. configure B to my preferences, as I am sure they would not be universally 
  167. accepted.
  168.      (Very iffy) I plan to add the ability to read ZIP files if they are 
  169. given as an argument, and list the files as if they were in an actual 
  170. directory.  This will take some time since I know nothing about how ZIP files 
  171. are set up, still.  With this option, I won't need to use UNZIP -v to read 
  172. ZIP file directories. 
  173.  
  174.  
  175. If you find any bugs in my program, or want to suggest a change, 
  176. email me at:          dohnarms@uiuc.edu
  177. or mail me at:        Dohn Arms
  178.                       Loomis Laboratory of Physics
  179.                       1110 West Green Street
  180.                       Urbana, IL  61801-3080
  181.  
  182. I am rather open to suggestions to improve my program if it doesn't take a 
  183. lot of effort to hack it into my code or if it doesn't get in the way of this 
  184. being mainly an alternative for the DIR command.  ("B now will answer your 
  185. EMAIL for you, write your physics doctoral thesis, generate the Great 
  186. American Novel, and prove Fermat's Last Theorem, while still giving you the 
  187. contents of a directory, which is what you've come to expect from B!!!")
  188.